package api

import (
	"gamers/api/router"
	"gamers/middleware"
	"gamers/runtime"

	"github.com/gin-gonic/gin"
	"go.uber.org/zap"
)

// InitRouter 加载其他位置路由
func InitRouter() *gin.Engine {
	r := gin.New()

	// 注册 recover 中间件。该中间件用于恢复程序 panic，防止因程序崩溃而导致的服务器 500 错误
	r.Use(gin.Recovery())

	// 接管Gin框架日志
	r.Use(runtime.GinLogger(zap.L()))

	// 跨域中间件
	r.Use(middleware.Cors())

	// 注册路由返回
	var routers = []func(*gin.Engine){
		router.NamespaceRouter,
	}

	for _, f := range routers {
		f(r)
	}
	return r
}
